package com.sikaryofficial.workbench.domain.dto.req.order;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class OrderDataSyncReq {
    /**
     * 订单ID
     */
    private Long orderHeaderId;

    /**
     * 订单编号【年份_月份_订单序号】
     */
    private String orderHeaderNo;

    /**
     * 订单头状态，0-draft,1-Confirmation,2-电子签章;其他状态待扩展
     */
    private Integer headerStatus;

    /**
     * 品牌编码
     */
    private String brandNo;

    /**
     * 总数量
     */
    private Long totalQuantity;

    /**
     * 总价
     */
    private BigDecimal amount;

    /**
     * 币种
     */
    private String currency;

    /**
     * 客户id
     */
    private Long customerId;

    /**
     * 其他信息
     */
    private String message;

    /**
     * 租户号
     */
    private String tenantId;

    /**
     * 乐观锁
     */
    private String revision;

    /**
     * 创建人
     */
    private Long createdBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createdTime;

    /**
     * 更新人
     */
    private Long updatedBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updatedTime;

    /**
     * 删除版本：默认为0；删除则赋值当前记录主键ID
     */
    private String deletedVersion;

    /**
     * 报价用户id
     */
    private Long quotationUserId;
    /**
     * 报价日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date quotationDate;

    /**
     * 形式发票号
     */
    private String piNo;

    /**
     * 报价审批流实例id
     */
    private String quotationProcessInstanceId;
    /**
     * 报价审批流状态。
     */
    private Integer quotationStatus;

    /**
     * 电子签id
     */
    private Long esignId;

    /**
     * 合同审批流实例id
     */
    private String contractProcessInstanceId;
    /**
     * 合同审批流状态。
     */
    private Integer contractStatus;
    /**
     * 定金审批流实例id
     */
    private String downPaymentProcessInstanceId;
    /**
     * 定金审批流状态。
     */
    private Integer downPaymentStatus;
    /**
     * 尾款审批流实例id
     */
    private String finalPaymentProcessInstanceId;
    /**
     * 尾款审批流状态。
     */
    private Integer finalPaymentStatus;

    /**
     * 订单条目
     */
    private List<OrderDataSyncDetail> orderItemList;
}
